##5-1 条件测试：编写一系列条件测试；将每个测试以及你对其结果的预测和实际结果都打印出来。你编写的代码应类似于下面这样：
##car = 'subaru'
##print("Is car == 'subaru'? I predict True.")
##    print(car == 'subaru')
##    print("\nIs car == 'audi'? I predict False.")
##    print(car == 'audi')
##·详细研究实际结果，直到你明白了它为何为True或False。
clothes = 'Aape'
print("Is clothes == 'Aape'? I predict True")
print(clothes=='Aape')
print("Is clothes == '可柔'? I predict False")
print(clothes=='可柔')
##·创建至少10个测试，且其中结果分别为True和False的测试都至少有5个。
water = '农夫山泉'
print("Is water == '农夫山泉'? I predict True")
print(water=='农夫山泉')
print("Is water == '娃哈哈'? I predict False")
print(water=='娃哈哈')

paper = 'Sam club'
print("Is paper=='Sam club' ? I predict True")
print(paper == 'Sam club')
print("Is paper == '相印' ? I predict False")
print(paper == '相印')

print('\n5-2:')
##5-2 更多的条件测试：你并非只能创建10个测试。如果你想尝试做更多的比较，可再编写一些测试，并将它们加入到conditional_tests.py中。对于下面列出的各种测试，至少编写一个结果为True和False的测试。
##·检查两个字符串相等和不等。
str1 = 'hello'
str2 = 'world'
str3 = 'hello'
print(str1 == str2)
print(str1 == str3)
##·使用函数lower()的测试。
str4 = 'Hello'
print(str1 == str4)
print(str1 == str4.lower())
##·检查两个数字相等、不等、大于、小于、大于等于和小于等于。
num1 = 3
num2 = 4
print('num1:'+ str(num1) +',num2:'+ str(num2))
print(num1 == num2)
print(num1 != num2)
print(num1 > num2)
print(num1 < num2)
print(num1 >= num2)
print(num1 <= num2)

##·使用关键字and和or的测试。
print(num1>2 and num2>2);
print(num1>=4 or num2>=4)
##·测试特定的值是否包含在列表中。
nums=list(range(1,200))
print(21 in nums)

##·测试特定的值是否未包含在列表中。
print(210 in nums)
squares = [val**2 for val in range(1,20)]
print(squares)

print('\n5-3:')
##5-3 外星人颜色#1：假设在游戏中刚射杀了一个外星人，请创建一个名为alien_color的变量，并将其设置为'green'、'yellow'或'red'。
alien_color = ['green','yellow','red']
print('alien_color:',alien_color)
##·编写一条if语句，检查外星人是否是绿色的；如果是，就打印一条消息，指出玩家获得了5个点。
for a in alien_color:
    if a == 'green':
        print('玩家获得5个点')
print('测试通过')
##·编写这个程序的两个版本，在一个版本中上述测试通过了，而在另一个版本中未通过（未通过测试时没有输出）。
for a in alien_color:
    if a == 'greeen':
        print('玩家获得5个点')
print('测试不通过')

print('\n5-4:')
##5-4 外星人颜色#2：像练习5-3那样设置外星人的颜色，并编写一个if-else结构。
##·如果外星人是绿色的，就打印一条消息，指出玩家因射杀该外星人获得了5个点。
##·如果外星人不是绿色的，就打印一条消息，指出玩家获得了10个点。
for a in alien_color:
    if a == 'green':
        print('你好，因射杀该外星人获得了5个点')
    else:
        print('你好，不是绿色，获得了10人点')
##·编写这个程序的两个版本，在一个版本中执行if代码块，而在另一个版本中执行else代码块。
for a in alien_color:
    if a != 'green':
        print('你好，因射杀该外星人获得了5个点')
    else:
        print('你好，不是绿色，获得了10人点')

print('\n5-5:')        
##5-5 外星人颜色#3：将练习5-4中的if-else结构改为if-elif-else结构。
##·如果外星人是绿色的，就打印一条消息，指出玩家获得了5个点。
##·如果外星人是黄色的，就打印一条消息，指出玩家获得了10个点。
##·如果外星人是红色的，就打印一条消息，指出玩家获得了15个点。
for a in alien_color:
    if a == 'green':
        print('你好，绿色，获得了5个点')
        print('ok啦')
    elif a == 'yellow':
        print('你好，黄色，获得了10人点')
    else:
        print('你好，红色，获得了15人点')
print('------------------------------')      
##·编写这个程序的三个版本，它们分别在外星人为绿色、黄色和红色时打印一条消息。
for a in alien_color:
    if a == 'green':
        print('你好，绿色，获得了5个点')
    elif a == 'yellow':
        print('你好，黄色，获得了10人点')
        print('ok啦')
    else:
        print('你好，红色，获得了15人点')
print('------------------------------')   
for a in alien_color:
    if a == 'green':
        print('你好，绿色，获得了5个点')
    elif a == 'yellow':
        print('你好，黄色，获得了10人点')
    else:
        print('你好，红色，获得了15人点')
        print('ok啦')

print('\n5-6:')   
##5-6 人生的不同阶段：设置变量age的值，再编写一个if-elif-else结构，根据age的值判断处于人生的哪个阶段。
##·如果一个人的年龄小于2岁，就打印一条消息，指出他是婴儿。
##·如果一个人的年龄为2（含）～4岁，就打印
##条消息，指出他正蹒跚学步。
##·如果一个人的年龄为4（含）～13岁，就打印一条消息，指出他是儿童。
##·如果一个人的年龄为13（含）～20岁，就打印一条消息，指出他是青少年。
##·如果一个人的年龄为20（含）～65岁，就打印一条消息，指出他是成年人。
##·如果一个人的年龄超过65（含）岁，就打印一条消息，指出他是老年人。
age = 35
if(age < 2):
    print('你是一个婴儿')
elif 2 <= age< 4:
    print('你正蹒跚学步')
elif 4 <= age < 13:
    print('你是儿童')
elif 13 <= age < 20:
    print('你是青少年')
elif 20 <= age < 65:
    print('你是成年人')
else:
    print('你是老年人')

print('\n5-7:')  
##5-7 喜欢的水果：创建一个列表，其中包含你喜欢的水果，再编写一系列独立的if语句，检查列表中是否包含特定的水果。'peach','banana','dragon fruit',
favorite_fruits = ['apple','pear','grapefruit']
##·将该列表命名为favorite_fruits，并在其中包含三种水果。
##·编写5条if语句，每条都检查某种水果是否包含在列表中，如果包含在列表中，就打印一条消息，如“You really like bananas!”。
if 'apple' in favorite_fruits:
    print('You really like apple!')
if 'pear' in favorite_fruits:
    print('You really like pear!')
if 'peach' in favorite_fruits:
    print('You really like peach!')
if 'grapefruit' in favorite_fruits:
    print('You really like grapefruit!')
if 'dragon fruit' in favorite_fruits:
    print('You really like dragon fruit!')

print('\n5-8:')  
##5-8 以特殊方式跟管理员打招呼：创建一个至少包含5个用户名的列表，且其中一个用户名为'admin'。想象你要编写代码，在每位用户登录网站后都打印一条问候消息。遍历用户名列表，并向每位用户打印一条问候消息。
##·如果用户名为'admin'，就打印一条特殊的问候消息，如“Hello admin,would you like to see a status report?”。
##·否则，打印一条普通的问候消息，如“Hello Eric,thank you for logging in again”。
users = ['admin','chsun6','小明','dalian','heihei']
for u in users:
    if u == 'admin':
         print('Hello admin,would you like to see a status report?')
    else:
         print('Hello '+ u +',thank you for logging in again')

print('\n5-9:')  
##5-9 处理没有用户的情形：在为完成练习5-8编写的程序中，添加一条if语句，检查用户名列表是否为空。
if users:
    for u in users:
        if u == 'admin':
             print('Hello admin,would you like to see a status report?')
        else:
             print('Hello '+ u +',thank you for logging in again')
##·如果为空，就打印消息“We need to find some users!”。
##·删除列表中的所有用户名，确定将打印正确的消息。
del users[:]
if users:
    for u in users:
        if u == 'admin':
             print('Hello admin,would you like to see a status report?')
        else:
             print('Hello '+ u +',thank you for logging in again')
else:
    print('We need to find some users!')

print('\n5-10:')  
##5-10 检查用户名：按下面的说明编写一个程序，模拟网站确保每位用户的用户名都独一无二的方式。
##·创建一个至少包含5个用户名的列表，并将其命名为current_users。
##·再创建一个包含5个用户名的列表，将其命名为new_users，并确保其中有一两个用户名也包含在列表current_users中。
##·遍历列表new_users，对于其中的每个用户名，都检查它是否已被使用。如果是这样，就打印一条消息，指出需要输入别的用户名；否则，打印一条消息，指出这个用户名未被使用。
##·确保比较时不区分大小写；换句话说，如果用户名'John'已被使用，应拒绝用户名'JOHN'。
current_users = ['admin','chsun6','小明','dalian','heihei']
new_users = ['小爱','chsun6','qing','dalian2','heihei']
for n in new_users:
    if n in current_users:
        print('请输入用户名:'+n)
    else:
        print(n+' 未被使用')
    
##5-11 序数：序数表示位置，如1st和2nd。大多数序数都以th结尾，只有1、2和3例外。
##·在一个列表中存储数字1～9。
##·遍历这个列表。
##·在循环中使用一个if-elif-else结构，以打印每个数字对应的序数。输出内容应为1st、2nd、3rd、4th、5th、6th、7th、8th和9th，但每个序数都独占一行。
ordinal_numbers = list(range(1,10))
for n in ordinal_numbers:
    if n == 1:
        print(n,'st')
    elif n == 2:
        print(n,'nd')
    elif n == 3:
        print(n, 'rd')
    else:
        print(n, 'th')

##5-12 设置if语句的格式：审核你在本章编写的程序，确保正确地设置了条件测试的格式。
##5-13 自己的想法：与刚拿起本书时相比，现在你是一名能力更强的程序员了。鉴于你对如何在程序中模拟现实情形有了更深入的认识，
##    你可以考虑使用程序来解决一些问题。随着编程技能不断提高，你可能想解决一些问题，请将这方面的想法记录下来。
##    想想你可能想编写的游戏、想研究的数据集以及想创建的Web应用程序。

























    
